跳到主要内容

监听器(Listeners)

监听器为设计师提供了工具,使他们能够更进一步地使用状态机,并定义点击、悬停和鼠标移动动作,这些动作可以在编辑器中和运行时更改输入,而无需开发人员的参与。

例如,这个按钮没有附加监听器。如果我们点击按钮,什么都不会发生。我们需要直接在输入面板中更改输入才能让按钮做出反应。

图片

没有监听器的按钮

一旦我们添加了监听器,您会注意到现在当我们点击按钮时,它的反应就像我们在网站、应用或游戏中预期的那样。

图片

带有监听器的按钮

注意,任何状态机都不是必须要有监听器。一旦您完成了基本设置并确保您的交互按预期工作,就可以导出并在运行时使用。虽然监听器允许设计师启用一些交互,但更复杂的交互需要在运行时定义。

创建新监听器(Creating a New Listener)

要创建新监听器,请使用监听器标签中的加号按钮。创建监听器后,选择监听器并使用检查器进行配置。在下面阅读更多关于配置监听器的内容。

图片

创建新监听器

监听器的构成(Anatomy of a Listener)

监听器由三个部分组成:目标、用户动作和监听器动作。目标告诉监听器应该在画板上的哪里监听用户的动作。一旦定义的动作在目标区域内发生,监听器就会通过更改输入值或将目标与鼠标光标对齐来做出反应。继续阅读下面的更多信息。

图片

监听器属性

目标(Target)

监听器要求我们定义一个将监听动作的区域。如果您熟悉游戏开发,那么我们的目标就是我们在画板上定义的碰撞框。此外,您可以选择画板或嵌套画板作为目标,这将自动监听来自该画板的任何事件。

有两种方式定义目标。

如果您在创建监听器时选择了一个对象,那么您选择的对象将自动被指定为目标。

图片

自动添加目标

或者,您可以在选择监听器的情况下点击目标按钮,然后在层级中或直接在舞台上选择对象。

图片

手动添加目标

注意事项

您可以将大多数对象设置为监听器的目标,但目标的工作方式会根据您目标的对象类型而不同。例如,将任何形状或组作为目标会创建一个碰撞框,但将画板或嵌套画板作为目标会监听来自这些画板的任何事件。

作为最佳实践,我们通常建议使用专门用作目标的形状,例如不透明度设置为 0% 的椭圆或矩形。使用形状作为目标可以让您更好地控制目标何时可用,以及具体覆盖画板的多少区域。

如果您决定选择组作为目标,组内的形状将作为目标。

动作(Action)

动作具体指的是监听器正在监听的动作。当您选择画板上的任何对象时,默认情况下监听器动作设置为指针进入,但可以随时更改。相反,当您将任何画板或嵌套画板作为目标时,监听器默认会监听来自该画板的任何事件。

图片

有七种不同的监听器动作。

指针按下(Pointer Down) - 鼠标点击按下,或手指按压(在触摸屏设备上)。

指针抬起(Pointer Up) - 释放鼠标点击或手指按压。

指针进入(Pointer Enter) - 鼠标或手指进入目标区域。

指针离开(Pointer Exit) - 鼠标或手指离开目标区域。

鼠标移动(Mouse Move) - 在目标区域内的任何鼠标或手指移动。

点击(Click) - 需要在目标区域内同时完成指针按下和指针抬起。

监听事件(Listen For Event) - 除非您将画板或嵌套画板作为目标,否则此动作是隐藏的。如果画板有多个事件,您可以使用下拉菜单选择要监听的特定事件。

监听器动作(Listener Action)

监听器动作是当定义的用户交互在目标区域内发生时监听器要做的事情。有三种类型的监听器动作:输入更改、报告事件和对齐目标。要添加监听器动作,点击用户动作下拉菜单旁边的加号按钮。请记住,您可以添加任意数量的监听器动作。

图片

输入更改(Input Change)

输入更改允许监听器更改定义的输入。例如,我们可以更改布尔值、触发触发器或将数值设置为特定整数。这就是我们如何创建直接在画板上工作的悬停和点击效果。

请记住,当您选择输入更改作为监听器动作时,系统会提示您定义要如何更改所选输入。

报告事件(Report Event)

报告事件是向运行时的开发人员或其他画板发送信号的好方法。请记住,每次满足用户动作时,您的事件都会报告。

对齐目标(Align Target)

对齐目标动作会在定义的用户动作在目标区域内发生时将目标与鼠标光标对齐。通过这个动作,我们可以创建强大的视差效果和跟随鼠标光标的头像。

添加对齐目标时,您需要指定要对齐的对象。